Updating a Linked Project

I have two DOORS Databases (Database A and Database B) on separate networks, each with its own DOORS project, Project A and Project B. The users on Database B need to view a copy of Project A so I have been archiving Project A from Database A and restoring it on Database B. Now the users on Database B want to be able to link from modules in Project B to modules in the copy of Project A. Is there a way to periodically update the copy of Project A and maintain or recreate the links from Project B?

It seems like I could write a DXL script that does something something like this:

1. Restore the "Updated Project A" from archive along side the existing copy of "Project A"
2. Cycle through all the objects in Project B, find all the links to "Project A", and create duplicates to "Updated Project A".
3. Delete Links to "Project A" (may not be necessary since I'm deleting "Project A")
4. Delete "Project A"
5. Rename "Updated Project A" -> "Project A"

I'm hoping there is an easier way.
Confuzed - Mon Jan 31 11:15:18 EST 2011

Re: Updating a Linked Project
llandale - Mon Jan 31 15:40:45 EST 2011

Don't think you can use Partition/Rejoin since both databases figure to use ProjA simultaneiously. Have not thought this through completely, but this may almost work.

[] Folks in B link to a read only stale copy of ProjA in Database B.
[] Run a Capture Links script in ProjB which sets attributes with all the link information vis-a-vis anything in projA.
[] Kill all the A to B links, presumably by deleting and purging the link modules.
[] Delete and Purge ProjA in DatabaseB.
[] Archive ProjA in DatabaseA, restore in DatabaseB.
[] Create the Link Modules
[] Restore all the links.

Seems to me the Kitchen has some Capture and Restore links scripts that will do this work, and hopefully someone will jump in here and provide them.

After rereading your solution, I think I like it better than mine. All in all its not that complicated a script but you have some clever string parsing to do, turning "/ProjA/Folder1/MyModule" into "/ProjARestored/Folder1/MyModule".

Gads, use the same database.

  • Louie